bitkeeper revision 1.687 (40103b9b_1gDIgjZpv4iQ_7yaCD9YQ)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Thu, 22 Jan 2004 21:07:39 +0000 (21:07 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Thu, 22 Jan 2004 21:07:39 +0000 (21:07 +0000)
xl_block.c:
  Fix user data handling in cdrom ioctl.

xenolinux-2.4.24-sparse/arch/xeno/drivers/block/xl_block.c

index 085120c75bd54ff7032b71271988f618dcb2200d..4be2f56e6ad99d55589c8e11160a0595561a3e69 100644 (file)
@@ -147,6 +147,7 @@ int xenolinux_block_ioctl(struct inode *inode, struct file *filep,
     struct hd_geometry *geo = (struct hd_geometry *)argument;
     struct gendisk *gd;     
     struct hd_struct *part; 
+    int i;
 
     /* NB. No need to check permissions. That is done for us. */
     
@@ -207,8 +208,8 @@ int xenolinux_block_ioctl(struct inode *inode, struct file *filep,
 
     case CDROMMULTISESSION:
         DPRINTK("FIXME: support multisession CDs later\n");
-        memset((struct cdrom_multisession *)argument, 0, 
-               sizeof(struct cdrom_multisession));
+        for ( i = 0; i < sizeof(struct cdrom_multisession); i++ )
+            if ( put_user(0, (byte *)(argument + i)) ) return -EFAULT;
         return 0;
 
     default: